A major problem in securing any computing system is determining a safe place to store and hide sensitive information. No matter how many ‘lockboxes’ are wrapped around this information, one is often still left with the problem of hiding the master key to the outermost lockbox.
It is generally accepted that a safe place to hide this master key is somewhere other than on the system being secured. This is exemplified by the use of smart cards, remote key servers, and the like, for securing the system that contain the master key. However, such approaches remain problematic where there is no remote storage mechanism available.
Storing the master key on the same computing system that it secures, also introduces numerous security concerns. Because, no current hiding place is perfectly secure, anything saved in a persistent store on the same computing system can be located, and hence is vulnerable to analysis, and attack. For example, many computer systems have at least one user that has super-user, or other administrative privileges, which makes many operating system security approaches ineffective for hiding the master key. Moreover, a persistent store and supporting code may be moved from one computing system to another, making it readily available to a hacker. Additionally, a hacker may repeatedly send data to traditional encryption tools that one may employ to secure the master key. In this manner, one may dynamically determine how the master key is secured, making such encryption tools even less effective. Therefore, there is a need in the industry for a method and system for protecting the master key, and similar sensitive information. Thus, it is with respect to these considerations, and others, that the present invention has been made.